# handle_excel
# 2024/10/18
# author:www
import xlrd

'''
函数名：get_excel_data()
函数功能：
    1、获取请求的body,预期响应结果
具体方案：
    1、导入对应的excel读取的库，xlrd处理xls格式；openpyxl处理xlsx格式；
    2、把excel中的内容读取到内存 excel对象
    3、找到需要操作的sheet表
    4、读取对应行列(单元格的数据)  
'''

def get_excel_data(excel_path, sheetName, case_NO):
    res_list = []
    # formatting_info = True 保留excel的样式
    # 打开文件
    workBook = xlrd.open_workbook(excel_path,formatting_info=True)
    # 获取文件中所有的sheet表单,取下标为0的
    # workSheet = workBook.sheets()[0]
    # workSheet = workBook.sheet_names() # 获取所有sheet的名称,列表形式返回
    workSheet = workBook.sheet_by_name(sheetName)  # 根据sheet名称查找表单
    # print(workSheet.nrows) # nrows：表单的总行数，ncols：表单的总列数
    print(workSheet.row_values(0)) # 读取表单的第0行  --excel行号从0开始
    # print(workSheet.col_values(0)) # 读取表单的第0列  --excel列号从0开始
    '''
    1、循环第一列的数据
    2、通过传递参数：用例编号，判断编号是否第一列中
    3、获取用例的请求，响应内容，用列表存起来
    '''
    col_name_index = 0  # 代表起始行
    for col in workSheet.col_values(0): # 获取第一列的数据
        if case_NO in col: # 用户输入的用例编号名称在第一列中能找到
            req_body = workSheet.cell_value(col_name_index,9) # 取第9列的内容，列固定的，行：循环符合条件的每一行
            resp_body = workSheet.cell_value(col_name_index,11)
            res_list.append((req_body,resp_body)) # 将
        col_name_index += 1
    return res_list




if __name__ == '__main__':
    result = get_excel_data('../data/h_saas_testcase.xls', 'login', 'login')
    for res in result:
        print(res)
